package com.alks.function.mapper.finance.mtlcosts;

import com.alks.entity.data.entity.PcApAmt;
import com.alks.function.data.dto.finance.ryfinance.ApAmtHeadDto;
import com.alks.function.data.request.finance.ryfinance.ApAmtHeadRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * ？（外包给他厂用到的材料及价格） Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2024-07-13
 */
public interface PcApAmtMapper extends BaseMapper<PcApAmt> {

    /**
     * 财务结算查询
     * @param request 请求条件
     * @param companyId 公司id
     * @return 结算资料表单数据
     */
    List<ApAmtHeadDto> amtTempQuery(@Param("request") ApAmtHeadRequest request, @Param("companyId") String companyId);

    /**
     * 财务结算查询
     * @param request 请求条件
     * @param companyId 公司id
     * @return 结算金额之和
     */
    BigDecimal amtSumQuery(@Param("request") ApAmtHeadRequest request, @Param("companyId") String companyId);

    /**
     * 查找对应最大序列号
     * @param balanceLeft 单号左侧拼接
     * @return 结果最大序列号
     */
    String balanceMaxQuery(@Param("balanceLeft") String balanceLeft);

    /**
     * 获取打印所需单据笔数
     * @param slipNo 结算单号
     * @param companyId 公司id
     * @return 单据笔数
     */
    Integer selectSlipCount(@Param("slipNo") String slipNo, @Param("companyId") String companyId);

    /**
     * 结算费用明细查询
     * @param flag 为1则自动汇总
     */
    List<PcApAmt> getBySlipNo(@Param("slipNo") String slipNo, @Param("flag") Integer flag, @Param("companyId") String companyId);
}
